#!/bin/bash
#备份指定目录下的所有文件, 如果不指定目录备份当前目录下的所有文件

#help function
help()
{
cat << HELP

================== dirbackup.sh help ===================
备份指定目录下的普通文件, 如果不指定目录将备份当前目录下的文件

USAGE:
r  指定需要备份的目录

dirbackup.sh 'arg1'
-n name  指定备份后的文件名(不含后缀)
-d dir  指定需要备份的目录

EXAMPLE:
dirbackup.sh -n namefile -d /DIR

HELP
}

####################主程序开始####################
FILENAME_BACKUP=backup_$(date +%Y-%m-%d-%H：%M：%S)

#echo $DIR_BACKUP
#echo $FILENAME_BACKUP

#参数辨识
while [ -n "$1" ]; do
case "$1" in
 -n)
  shift
  [ -z "$1" ] && { echo "参数错误,请填写文件名"; help; exit 1; }
  FILENAME_BACKUP=$1_$(date +%Y-%m-%d-%H：%M：%S)
  shift
  ;;
 -d)
  shift
  [ -d "$1" ] || { echo "参数错误,请从新填写目录"; help; exit 1; }
  DIR_BACKUP="$1"
  shift
  ;;
 *)echo " 参数填写错误"; help; exit 1;;
esac
done

#打包
tar cvf - `find $DIR_BACKUP -type f -print` > $FILENAME_BACKUP.tar
echo 
echo "Dir $DIR_BACKUP backed up in \"$FILENAME_BACKUP.tar\"."
exit 0
